package com.cictec.middleware.tde.rm.protocol.rm.message;

import java.util.Date;

import com.cictec.middleware.tde.rm.protocol.TerminalMessage;

/**
 * 0x24 刷卡上报
 * 
 * @author Zhibin
 *
 */
public class Rm0x24TerminalMessage extends TerminalMessage {

	private static final long serialVersionUID = -1552222039539127438L;
	
	/** 产生时间 HEX 4 字节 数据包产生的时间 */
	private Date createTime;
	/** 主版本号 HEX 1 字节 刷卡机主版本号 */
	private int readerMainVersion;
	/** 子版本号 HEX 1 字节 刷卡机子版本号 */
	private int readerSubVersion;
	/**卡号内容 HEX 4 字节 【4 字节 16 进制，可为驾驶员工号、IC 卡号、服务卡号等】*/
	private String cardNumber;

	/** 预留 HEX 2 字节 见刷卡标识表 
	 * 刷卡标识表：<br>
	 * 		Bit7 	Bit6 	Bit5 	Bit4 	Bit3	Bit2	Bit1	Bit0<br>
	 *	0 													签到 	司机卡<br>
	 *	1 	预留 	预留 	预留 	预留 	预留 	预留 	签退 	维护卡<br>
	 *		Bit15 	Bit14 	Bit13 	Bit12 	Bit11 	Bit10 	Bit9 	Bit8<br>
	 *	0<br>
	 *	1 	预留 	预留	 	预留 	预留 	预留		 预留 	预留		预留<br>*/
	private int reserved;

	/** 卡片类型 0-司机卡 1 -维护卡 */
	private int cardType;
	/** 刷卡类型 0-签到 1-签退 */
	private int operateType;

	public Rm0x24TerminalMessage(Header header) {
		super(header);
	}

	/** 产生时间 HEX 4 字节 数据包产生的时间 */
	public Date getCreateTime() {
		return createTime;
	}

	/** 产生时间 HEX 4 字节 数据包产生的时间 */
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	/** 主版本号 HEX 1 字节 刷卡机主版本号 */
	public int getReaderMainVersion() {
		return readerMainVersion;
	}

	/** 主版本号 HEX 1 字节 刷卡机主版本号 */
	public void setReaderMainVersion(int readerMainVersion) {
		this.readerMainVersion = readerMainVersion;
	}

	/** 子版本号 HEX 1 字节 刷卡机子版本号 */
	public int getReaderSubVersion() {
		return readerSubVersion;
	}

	/** 子版本号 HEX 1 字节 刷卡机子版本号 */
	public void setReaderSubVersion(int readerSubVersion) {
		this.readerSubVersion = readerSubVersion;
	}


	/** 预留 HEX 2 字节 见刷卡标识表 
	 * 刷卡标识表：<br>
	 * 		Bit7 	Bit6 	Bit5 	Bit4 	Bit3	Bit2	Bit1	Bit0<br>
	 *	0 													签到 	司机卡<br>
	 *	1 	预留 	预留 	预留 	预留 	预留 	预留 	签退 	维护卡<br>
	 *		Bit15 	Bit14 	Bit13 	Bit12 	Bit11 	Bit10 	Bit9 	Bit8<br>
	 *	0<br>
	 *	1 	预留 	预留	 	预留 	预留 	预留		 预留 	预留		预留<br>*/
	public int getReserved() {
		return reserved;
	}

	/** 预留 HEX 2 字节 见刷卡标识表 
	 * 刷卡标识表：<br>
	 * 		Bit7 	Bit6 	Bit5 	Bit4 	Bit3	Bit2	Bit1	Bit0<br>
	 *	0 													签到 	司机卡<br>
	 *	1 	预留 	预留 	预留 	预留 	预留 	预留 	签退 	维护卡<br>
	 *		Bit15 	Bit14 	Bit13 	Bit12 	Bit11 	Bit10 	Bit9 	Bit8<br>
	 *	0<br>
	 *	1 	预留 	预留	 	预留 	预留 	预留		 预留 	预留		预留<br>*/
	public void setReserved(int reserved) {
		this.reserved = reserved;
	}

	/**卡号内容 HEX 4 字节 【4 字节 16 进制，可为驾驶员工号、IC 卡号、服务卡号等】*/
	public String getCardNumber() {
		return cardNumber;
	}

	/**卡号内容 HEX 4 字节 【4 字节 16 进制，可为驾驶员工号、IC 卡号、服务卡号等】*/
	public void setCardNumber(String cardNumber) {
		this.cardNumber = cardNumber;
	}

	/** 卡片类型 0-司机卡 1 -维护卡 */
	public int getCardType() {
		return cardType;
	}

	/** 卡片类型 0-司机卡 1 -维护卡 */
	public void setCardType(int cardType) {
		this.cardType = cardType;
	}

	/** 刷卡类型 0-签到 1-签退 */
	public int getOperateType() {
		return operateType;
	}

	/** 刷卡类型 0-签到 1-签退 */
	public void setOperateType(int operateType) {
		this.operateType = operateType;
	}

}
